﻿namespace Jsl.StyleCop.CSharp
{
    /// <summary>
    /// The possible usages of variable.
    /// </summary>
    public enum VariableUsage
    {
        /// <summary>
        /// The variable is being accessed.
        /// </summary>
        Access,

        /// <summary>
        /// The variable is being access and assigned in the same statement.
        /// </summary>
        AccessAndAssignment,

        /// <summary>
        /// The variable is being assigned.
        /// </summary>
        Assignment,

        /// <summary>
        /// The variable is being declared without initialization.
        /// </summary>
        Declaration,

        /// <summary>
        /// The variable is being declared with initialization.
        /// </summary>
        DeclarationAndAssignment,

        /// <summary>
        /// The variable is being used as an out parameter.
        /// </summary>
        OutParameter,

        /// <summary>
        /// The variable is being used as a ref parameter.
        /// </summary>
        RefParameter
    }
}